{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "Chapter 08\n",
    "# 无输入、无输出函数，装饰线图\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "# 导入包\n",
    "import matplotlib.pyplot as plt\n",
    "# 导入 Matplotlib 库中的 pyplot 模块，并将其命名为 plt\n",
    "import numpy as np\n",
    "# 导入 NumPy 库，并将其命名为 np"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-07-03T14:53:41.555449Z",
     "end_time": "2024-07-03T14:53:42.280545Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "# 自定义函数\n",
    "def beautify_line_chart():\n",
    "    # 添加标签\n",
    "    plt.xlabel(\"x\")\n",
    "    plt.ylabel(\"f(x)\")\n",
    "    # 设置坐标轴范围\n",
    "    plt.xlim(-2, 2)\n",
    "    plt.ylim(-2, 2)\n",
    "    # 设置横纵轴刻度\n",
    "    plt.xticks([-2, -1, 0, 1, 2])\n",
    "    plt.yticks([-2, -1, 0, 1, 2])\n",
    "    # 添加网格线\n",
    "    plt.grid(True)\n",
    "    # 横纵轴统一标尺\n",
    "    plt.gca().set_aspect('equal', adjustable='box')\n",
    "    # 显示图形\n",
    "    plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-07-03T14:53:50.836591Z",
     "end_time": "2024-07-03T14:53:50.846933Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [],
   "source": [
    "x_array = np.linspace(-2, 2, 101)\n",
    "# 使用NumPy的linspace函数创建一个包含101个元素的数组\n",
    "# 这些元素均匀地分布在区间[-2, 2]上，左闭右闭"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-07-03T14:54:04.149594Z",
     "end_time": "2024-07-03T14:54:04.155624Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 400x400 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制直线\n",
    "fig, ax = plt.subplots(figsize=(4, 4))\n",
    "# plt.subplots()返回值解包为两个变量：fig 和 ax\n",
    "# fig图形窗口对象，可以用于设置图形窗口的属性\n",
    "# ax 是坐标轴对象，用于绘制具体的图形和设置坐标轴的属性\n",
    "# figsize=(4, 4) 表示图形窗口的宽度为4英寸，高度为4英寸\n",
    "\n",
    "y_array = x_array  # 一次函数 y = x\n",
    "plt.plot(x_array, y_array)\n",
    "beautify_line_chart()  # 调用自定义函数绘制美化的线图"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-07-03T14:54:15.117220Z",
     "end_time": "2024-07-03T14:54:15.253860Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 400x400 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制抛物线\n",
    "fig, ax = plt.subplots(figsize=(4, 4))\n",
    "y_array = x_array ** 2 - 2  # 二次函数\n",
    "plt.plot(x_array, y_array)\n",
    "beautify_line_chart()  # 调用自定义函数绘制美化的线图"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2024-07-03T14:55:41.526430Z",
     "end_time": "2024-07-03T14:55:41.601118Z"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
